#pragma once

#include "AbstractTensorProductSurfaces.h"

namespace cagd
{
    class BicubicBezierPatch: public AbstractTensorProductSurface
    {
    public:
        BicubicBezierPatch();

        GLboolean UBlendingFunctionValues(GLdouble u_knot, RowMatrix<GLdouble> &blending_values) const;
        GLboolean VBlendingFunctionValues(GLdouble v_knot, RowMatrix<GLdouble> &blending_values) const;
        GLboolean CalculateAllInformation(GLdouble u, GLdouble v, SurfaceInformation &pd) const;

        ~BicubicBezierPatch();
    };
}
